Множинне спадкування

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Не вказано

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Комп’ютерні системи

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ Національний університет “Львівська політехніка” Кафедра САП  Звіт до лабораторної роботи № 11 Множинне спадкування з курсу “Проблемно-орієнтоване програмування” для студентів спеціальності "Комп’ютерні системи проектування" Львів 2013 1. МЕТА РОБОТИ Метою даної роботи є ознайомлення з принципами множинного спадкування у обєктно-орієнтованій мові програмування C++. 2. ТЕОРЕТИЧНІ ВІДОМОСТІ Множинне спадкування Похідний клас може одночасно спадковувати властивості декількох базових класів. Конструктори, деструктори й спадкування У зв'язку зі спадкуванням виникають два питання, що стосуються конструкторів і деструкторів. По-перше, коли викликаються конструктори й деструктори базового й похідного класів? По-друге, як передаються параметри конструкторів базового класу? Відповіді на ці питання описано нижче. Коли викликаються конструктори й деструктори Базовий і похідний клас можуть містити декілька конструкторів і деструктор. Отже, дуже важливо правильно розуміти, у якому порядку вони викликаються при створенні й знищенні об'єктів похідного класу. При створенні об'єкта похідного класу спочатку викликається конструктор базового класу, а потім - похідного. При знищенні об'єкта похідного класу спочатку викликається деструктор похідного класу, а потім - базового. Інакше кажучи, конструктори викликаються в ієрархічному порядку, а деструктори - у зворотному. Це цілком природно. Оскільки базовий клас не має ніякої інформації про похідні класи, ініціалізація його об'єктів повинна виконуватися до ініціалізації будь-якого об'єкта похідного класу. Отже, конструктор базового класу повинен викликатися першим. Цілком очевидно, що деструктори повинні викликатися у зворотному порядку. Оскільки похідний клас успадковує властивості базового, знищення об'єкта базового класу викличе знищення об'єкта похідного класу. Отже, деструктор похідного класу повинен викликатися до повного знищення об'єкта. При ієрархічному спадкуванні (коли похідний клас стає базовим для свого спадкоємця) застосовується наступне правило: конструктори викликаються в ієрархічному порядку, а деструктори - у зворотному. Це правило застосовне й до множинного спадкування. Передача параметрів конструкторові базового класу Дотепер ми розглядали конструктори, що не мають аргументів. Якщо конструктор похідного класу повинен одержувати кілька параметрів, варто просто використовувати стандартну синтаксичну форму конструктора з параметрами. Однак виникає питання, яким чином передаються аргументи конструкторові базового класу? Для цього застосовується розширена форма оголошення конструктора похідного класу, що дозволяє передавати аргументи декільком конструкторам одного або декількох базових класів. Загальна форма цієї синтаксичної конструкції така. конструктор_похідного_класу (список_аргументів) : bаве1 (список_аргументів), bаsе2(список_аргументів), . . . bаseN(список_аргументів) { // Тіло конструктора похідного класу } Тут параметри base1 - baseN є іменами базових класів. Зверніть увагу на те, що оголошення конструктора похідного класу відділяється двокрапкою від специфікацій базових класів, які, у свою чергу, розділяються комами. Підкреслимо, що аргументи конструктора базового класу передаються за допомогою аргументів конструктора похідного класу. Отже, навіть якщо конструктор похідного класу не має власних аргументів, його оголошення повинне містити аргументи конструкторів базових класів. У цьому випадку аргументи, передані конструкторові похідного класу, просто переправляються конструкторам базових класів. Конструктор похідного класу може довільно використовувати всі параметри, зазначені в його оголошенні, навіть якщо вони передаються конструкторам базового класу. Інакше кажучи, передача параметрів конструкторам базових класів не виключає їхнього використання всередині похідного класу. Передаючи параметри конструкторам базових класів, варто мати на увазі, що як аргумент можуть використовуватися будь-які допустимі вирази, ...
Антиботан аватар за замовчуванням

29.09.2014 20:09

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини